home *** CD-ROM | disk | FTP | other *** search
/ Atari Mega Archive 1 / Atari Mega Archive - Volume 1.iso / language / iconv8_s.arc / ICONT.ARC / OPTAB.C < prev    next >
C/C++ Source or Header  |  1990-03-28  |  14KB  |  366 lines

  1. #include "..\h\config.h"
  2. #include "tlex.h"
  3.  
  4. /*
  5.  * State tables for operator recognition.
  6.  */
  7.  
  8. struct optab state0[] = {       /* initial state */
  9.    { ',', A_Immret, (char *) &toktab[ 58] },      /* ","     */
  10.    { '.', A_Immret, (char *) &toktab[ 62] },      /* "."     */
  11.    { '[', A_Immret, (char *) &toktab[ 69] },      /* "["     */
  12.    { ']', A_Immret, (char *) &toktab[ 98] },      /* "]"     */
  13.    { '(', A_Immret, (char *) &toktab[ 78] },      /* "("     */
  14.    { ')', A_Immret, (char *) &toktab[ 99] },      /* ")"     */
  15.    { ';', A_Immret, (char *) &toktab[100] },      /* ";"     */
  16.    { '{', A_Immret, (char *) &toktab[ 68] },      /* "{"     */
  17.    { '}', A_Immret, (char *) &toktab[ 97] },      /* "}"     */
  18.    { '!', A_Immret, (char *) &toktab[ 53] },      /* "!"     */
  19.    { '\\', A_Immret, (char *) &toktab[ 52] },      /* "\\"    */
  20.    { ':', A_Goto,   (char *) state1       },      /* ":" ... */
  21.    { '<', A_Goto,   (char *) state2       },      /* "<" ... */
  22.    { '>', A_Goto,   (char *) state4       },      /* ">" ... */
  23.    { '=', A_Goto,   (char *) state5       },      /* "=" ... */
  24.    { '|', A_Goto,   (char *) state3       },      /* "|" ... */
  25.    { '+', A_Goto,   (char *) state7       },      /* "+" ... */
  26.    { '-', A_Goto,   (char *) state8       },      /* "-" ... */
  27.    { '*', A_Goto,   (char *) state9       },      /* "*" ... */
  28.    { '^', A_Goto,   (char *) state6       },      /* "^" ... */
  29.    { '~', A_Goto,   (char *) state29      },      /* "~" ... */
  30.    { '/', A_Goto,   (char *) state21      },      /* "/" ... */
  31.    { '%', A_Goto,   (char *) state30      },      /* "%" ... */
  32.    { '?', A_Goto,   (char *) state36      },      /* "?" ... */
  33.    { '&', A_Goto,   (char *) state38      },      /* "&" ... */
  34.    { '@', A_Goto,   (char *) state40      },      /* "@" ... */
  35.    { '$', A_Goto,   (char *) state62      },      /* "$" ... */
  36.    { 0,   A_Error,  0            }
  37.    };
  38.  
  39. struct optab state1[] = {       /* ":" */
  40.    { '=', A_Goto,   (char *) state10      },      /* ":=" ... */
  41.    { 0,   A_Return, (char *) &toktab[ 57] }       /* ":"      */
  42.    };
  43.  
  44. struct optab state2[] = {       /* "<" */
  45.    { '-', A_Goto,   (char *) state11      },      /* "<-" ... */
  46.    { '<', A_Goto,   (char *) state32      },      /* "<<" ... */
  47.    { ':', A_Goto,   (char *) state46      },      /* "<:" ... */
  48.    { '=', A_Goto,   (char *) state56      },      /* "<=" ... */
  49.    { 0,   A_Return, (char *) &toktab[ 89] }       /* "<"      */
  50.    };
  51.  
  52. struct optab state3[] = {       /* "|" */
  53.    { '|', A_Goto,   (char *) state22      },      /* "||" ... */
  54.    { 0,   A_Return, (char *) &toktab[ 54] }       /* "|"      */
  55.    };
  56.  
  57. struct optab state4[] = {       /* ">" */
  58.    { '>', A_Goto,   (char *) state33      },      /* ">>" ... */
  59.    { ':', A_Goto,   (char *) state44      },      /* ">:" ... */
  60.    { '=', A_Goto,   (char *) state57      },      /* ">=" ... */
  61.    { 0,   A_Return, (char *) &toktab[ 87] }       /* ">"      */
  62.    };
  63.  
  64. struct optab state5[] = {        /* "=" */
  65.    { '=', A_Goto,   (char *) state12      },      /* "==" ... */
  66.    { ':', A_Goto,   (char *) state42      },      /* "=:" ... */
  67.    { 0,   A_Return, (char *) &toktab[ 85] }       /* "="      */
  68.    };
  69.  
  70. struct optab state6[] = {        /* "^" */
  71.    { ':', A_Goto,   (char *) state23      },      /* "^:" ... */
  72.    { 0,   A_Return, (char *) &toktab[ 55] }       /* "^"      */
  73.    };
  74.  
  75. struct optab state7[] = {       /* "+" */
  76.    { ':', A_Goto,   (char *) state15      },      /* "+:" ... */
  77.    { '+', A_Goto,   (char *) state16      },      /* "++" ... */
  78.    { 0,   A_Return, (char *) &toktab[ 92] }       /* "+"      */
  79.    };
  80.  
  81. struct optab state8[] = {        /* "-" */
  82.    { ':', A_Goto,   (char *) state17      },      /* "-:" ... */
  83.    { '-', A_Goto,   (char *) state18      },      /* "--" ... */
  84.    { 0,   A_Return, (char *) &toktab[ 80] }       /* "-"      */
  85.    };
  86.  
  87. struct optab state9[] = {        /* "*" */
  88.    { ':', A_Goto,   (char *) state19      },      /* "*:" ... */
  89.    { '*', A_Goto,   (char *) state20      },      /* "**" ... */
  90.    { 0,   A_Return, (char *) &toktab[104] }       /* "*"      */
  91.    };
  92.  
  93. struct optab state10[] = {       /* ":=" */
  94.    { ':', A_Immret, (char *) &toktab[106] },      /* ":=:" */
  95.    { 0,   A_Return, (char *) &toktab[ 34] }       /* ":="  */
  96.    };
  97.  
  98. struct optab state11[] = {       /* "<-" */
  99.    { '>', A_Immret, (char *) &toktab[ 96] },      /* "<->" */
  100.    { 0,   A_Return, (char *) &toktab[ 95] }       /* "<-"  */
  101.    };
  102.  
  103. struct optab state12[] = {       /* "==" */
  104.    { '=', A_Goto,   (char *) state61      },      /* "===" ... */
  105.    { ':', A_Goto,   (char *) state48      },      /* "==:" ... */
  106.    { 0,   A_Return, (char *) &toktab[ 72] }       /* "=="  */
  107.    };
  108.  
  109. struct optab state13[] = {       /* "~=" */
  110.    { '=', A_Goto,   (char *) state14      },      /* "~==" ... */
  111.    { ':', A_Goto,   (char *) state43      },      /* "~=:" ... */
  112.    { 0,   A_Return, (char *) &toktab[ 90] }       /* "~="      */
  113.    };
  114.  
  115. struct optab state14[] = {       /* "~==" */
  116.    { ':', A_Goto,   (char *) state49      },      /* "~==:" ... */
  117.    { '=', A_Goto,   (char *) state60      },      /* "~===" ... */
  118.    { 0,   A_Return, (char *) &toktab[ 77] }       /* "~=="  */
  119.    };
  120.  
  121. struct optab state15[] = {       /* "+:" */
  122.    { '=', A_Immret, (char *) &toktab[ 93] },      /* "+:=" */
  123.    { 0,   A_Return, (char *) &toktab[ 91] }       /* "+:"  */
  124.    };
  125.  
  126. struct optab state16[] = {       /* "++" */
  127.    { ':', A_Goto,   (char *) state24      },      /* "++:" ... */
  128.    { 0,   A_Return, (char *) &toktab[108] }       /* "++"      */
  129.    };
  130.  
  131. struct optab state17[] = {       /* "-:" */
  132.    { '=', A_Immret, (char *) &toktab[ 81] },      /* "-:=" */
  133.    { 0,   A_Return, (char *) &toktab[ 79] }       /* "-:"  */
  134.    };
  135.  
  136. struct optab state18[] = {       /* "--" */
  137.    { ':', A_Goto,   (char *) state25      },      /* "--:" ... */
  138.    { 0,   A_Return, (char *) &toktab[ 63] }       /* "--" */
  139.    };
  140.  
  141. struct optab state19[] = {      /* "*:" */
  142.    { '=', A_Immret, (char *) &toktab[105] },      /* "*:=" */
  143.    { 0,   A_Error,  0            }
  144.    };
  145.  
  146. struct optab state20[] = {       /* "**" */
  147.    { ':', A_Goto,   (char *) state26      },      /* "**:" ... */
  148.    { 0,   A_Return, (char *) &toktab[ 66] }       /* "**"      */
  149.    };
  150.  
  151. struct optab state21[] = {       /* "/" */
  152.    { ':', A_Goto,   (char *) state27      },      /* "/:" ... */
  153.    { 0,   A_Return, (char *) &toktab[102] }       /* "/"      */
  154.    };
  155.  
  156. struct optab state22[] = {       /* "||" */
  157.    { ':', A_Goto,   (char *) state28      },      /* "||:" ... */
  158.    { '|', A_Goto,   (char *) state34      },      /* "|||" ... */
  159.    { 0,   A_Return, (char *) &toktab[ 59] }       /* "||"      */
  160.    };
  161.  
  162. struct optab state23[] = {       /* "^:" */
  163.    { '=', A_Immret, (char *) &toktab[ 56] },      /* "^:=" */
  164.    { 0,   A_Error,  0            }
  165.    };
  166.  
  167. struct optab state24[] = {       /* "++:" */
  168.    { '=', A_Immret, (char *) &toktab[109] },      /* "++:=" */
  169.    { 0,   A_Error,  0            }
  170.    };
  171.  
  172. struct optab state25[] = {       /* "--:" */
  173.    { '=', A_Immret, (char *) &toktab[ 64] },      /* "--:=" */
  174.    { 0,   A_Error,  0            }
  175.    };
  176.  
  177. struct optab state26[] = {       /* "**:" */
  178.    { '=', A_Immret, (char *) &toktab[ 67] },      /* "**:=" */
  179.    { 0,   A_Error,  0            }
  180.    };
  181.  
  182. struct optab state27[] = {       /* "/:" */
  183.    { '=', A_Immret, (char *) &toktab[103] },      /* "/:=" */
  184.    { 0,   A_Error,  0            }
  185.    };
  186.  
  187. struct optab state28[] = {      /* "||:" */
  188.    { '=', A_Immret, (char *) &toktab[ 60] },      /* "||:=" */
  189.    { 0,   A_Error,  0            }
  190.    };
  191.  
  192. struct optab state29[] = {       /* "~" */
  193.    { '=', A_Goto,   (char *) state13      },      /* "~=" ... */
  194.    { 0,   A_Return, (char *) &toktab[107] }       /* "~"      */
  195.    };
  196.  
  197. struct optab state30[] = {       /* "%" */
  198.    { ':', A_Goto,   (char *) state31      },      /* "%:" ... */
  199.    { 0,   A_Return, (char *) &toktab[ 82] }       /* "%"      */
  200.    };
  201.  
  202. struct optab state31[] = {       /* "%:" */
  203.    { '=', A